#ifndef __APP_PROGRAM_H__
#define __APP_PROGRAM_H__
#include "stdint.h"
#include "stm32f1xx_hal.h"
#include "dynamic_string_queue.h"
// ================ 状态枚举定义 ================
typedef enum {
    DO_STATE_IDLE        ,   // 空闲状态（采集传感器数据）（定时采集1分钟）
    DO_STATE_UPLOAD      ,   // 上传数据到服务器（1分钟上传一次）
    DO_STATE_SYN_CHECK   ,   // SYN状态检查定时调用 （定时查询10分钟）
    DO_STATE_KEY_ROTATE  ,   // 更换通信密钥 （24小时更新）
    DO_STATE_IP_WHITELIST,   // 白名单检查
    DO_DEVIVE_CON_STATE  ,   // 设备控制（待定）
    DO_DEVIVE_CONTROL    ,   // 设备控制（待定）
    DO_DATA_HANDLE       ,   // 接收处理
    DO_STATE_END         ,   // 末尾 
} SystemState;
  
void send_to_sensor(void *con_cmd, uint16_t cmd_len);
uint8_t Handle_Key_Rotate_State(void);

void recv_from_sensor(void);

extern DynamicStringQueue *queue;
#endif /* __APP_PROGRAM_H__ */
